package com.css.dzj.dzjap.modules.administration.punish.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

@Entity
@Table(name = "AP_JGXW_PUNISH_ACTION", schema = "DZJAP", catalog = "")
public class Punish {
    private String id;
    private String recordUniqueIdentity;
    private String superviseItemCode;
    private String punishActionName;
    private String punishActionCode;
    private String implementInstitution;
    private String implementInstitutionCode;
    private String entrustDept;
    private String entrustDeptCode;
    private String superviseObject;
    private String caseSource;
    private String checkActionCode;
    private String administrativeCp;
    private String administrativeCpNa;
    private String administrativeCpCeType;
    private String administrativeCpUiCode;
    private String addressRegistered;
    private String addressOperating;
    private String areaNumber;
    private String illegalFact;
    private String punishAccord;
    private String punishProcedure;
    private String ifHearingWitnesses;
    private Date filingDate;
    private String caseInvolvingPunishment;
    private String majorCase;
    private String legalReview;
    private Date legalReviewDate;
    private String legalReviewOpinions;
    private String discussCollectively;
    private Date groupDiscussionDate;
    private String groupDiscussion;
    private String punishDocumentCode;
    private Date setDate;
    private String punishType;
    private Double fine;
    private String penaltyResult;
    private String administrativeReconsider;
    private String administrativeAction;
    private String applyAdministrativeReconsiderGovernment;
    private String applyAdministrativeReconsiderDept;
    private String administrativeActionCourt;
    private String casesClosedExecutionWay;
    private String casesClosedExecutionResult;
    private Double casesClosedFine;
    private String casesClosedExecution;
    private Date administrativePenalties;
    private String otherDisposals;
    private Date deportationDate;
    private Date submittedDate;
    private String submittedPersonnel;
    private Date insertTime;
    private String source;
    private String batchNumber;
    private String synchronousType;
    private String dataSource;
    private String createUser;
    private Date createTime;
    private String delFlag;

    @Id
    @Column(name = "ID")
    @GeneratedValue(generator = "SnowflakeId")
    @GenericGenerator(name = "SnowflakeId",strategy = "com.css.dzj.dzjap.common.util.SnowflakeId")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "RECORD_UNIQUE_IDENTITY")
    public String getRecordUniqueIdentity() {
        return recordUniqueIdentity;
    }

    public void setRecordUniqueIdentity(String recordUniqueIdentity) {
        this.recordUniqueIdentity = recordUniqueIdentity;
    }

    @Basic
    @Column(name = "SUPERVISE_ITEM_CODE")
    public String getSuperviseItemCode() {
        return superviseItemCode;
    }

    public void setSuperviseItemCode(String superviseItemCode) {
        this.superviseItemCode = superviseItemCode;
    }

    @Basic
    @Column(name = "PUNISH_ACTION_NAME")
    public String getPunishActionName() {
        return punishActionName;
    }

    public void setPunishActionName(String punishActionName) {
        this.punishActionName = punishActionName;
    }

    @Basic
    @Column(name = "PUNISH_ACTION_CODE")
    public String getPunishActionCode() {
        return punishActionCode;
    }

    public void setPunishActionCode(String punishActionCode) {
        this.punishActionCode = punishActionCode;
    }

    @Basic
    @Column(name = "IMPLEMENT_INSTITUTION")
    public String getImplementInstitution() {
        return implementInstitution;
    }

    public void setImplementInstitution(String implementInstitution) {
        this.implementInstitution = implementInstitution;
    }

    @Basic
    @Column(name = "IMPLEMENT_INSTITUTION_CODE")
    public String getImplementInstitutionCode() {
        return implementInstitutionCode;
    }

    public void setImplementInstitutionCode(String implementInstitutionCode) {
        this.implementInstitutionCode = implementInstitutionCode;
    }

    @Basic
    @Column(name = "ENTRUST_DEPT")
    public String getEntrustDept() {
        return entrustDept;
    }

    public void setEntrustDept(String entrustDept) {
        this.entrustDept = entrustDept;
    }

    @Basic
    @Column(name = "ENTRUST_DEPT_CODE")
    public String getEntrustDeptCode() {
        return entrustDeptCode;
    }

    public void setEntrustDeptCode(String entrustDeptCode) {
        this.entrustDeptCode = entrustDeptCode;
    }

    @Basic
    @Column(name = "SUPERVISE_OBJECT")
    public String getSuperviseObject() {
        return superviseObject;
    }

    public void setSuperviseObject(String superviseObject) {
        this.superviseObject = superviseObject;
    }

    @Basic
    @Column(name = "CASE_SOURCE")
    public String getCaseSource() {
        return caseSource;
    }

    public void setCaseSource(String caseSource) {
        this.caseSource = caseSource;
    }

    @Basic
    @Column(name = "CHECK_ACTION_CODE")
    public String getCheckActionCode() {
        return checkActionCode;
    }

    public void setCheckActionCode(String checkActionCode) {
        this.checkActionCode = checkActionCode;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP")
    public String getAdministrativeCp() {
        return administrativeCp;
    }

    public void setAdministrativeCp(String administrativeCp) {
        this.administrativeCp = administrativeCp;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_NA")
    public String getAdministrativeCpNa() {
        return administrativeCpNa;
    }

    public void setAdministrativeCpNa(String administrativeCpNa) {
        this.administrativeCpNa = administrativeCpNa;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_CE_TYPE")
    public String getAdministrativeCpCeType() {
        return administrativeCpCeType;
    }

    public void setAdministrativeCpCeType(String administrativeCpCeType) {
        this.administrativeCpCeType = administrativeCpCeType;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_UI_CODE")
    public String getAdministrativeCpUiCode() {
        return administrativeCpUiCode;
    }

    public void setAdministrativeCpUiCode(String administrativeCpUiCode) {
        this.administrativeCpUiCode = administrativeCpUiCode;
    }

    @Basic
    @Column(name = "ADDRESS_REGISTERED")
    public String getAddressRegistered() {
        return addressRegistered;
    }

    public void setAddressRegistered(String addressRegistered) {
        this.addressRegistered = addressRegistered;
    }

    @Basic
    @Column(name = "ADDRESS_OPERATING")
    public String getAddressOperating() {
        return addressOperating;
    }

    public void setAddressOperating(String addressOperating) {
        this.addressOperating = addressOperating;
    }

    @Basic
    @Column(name = "AREA_NUMBER")
    public String getAreaNumber() {
        return areaNumber;
    }

    public void setAreaNumber(String areaNumber) {
        this.areaNumber = areaNumber;
    }

    @Basic
    @Column(name = "ILLEGAL_FACT")
    public String getIllegalFact() {
        return illegalFact;
    }

    public void setIllegalFact(String illegalFact) {
        this.illegalFact = illegalFact;
    }

    @Basic
    @Column(name = "PUNISH_ACCORD")
    public String getPunishAccord() {
        return punishAccord;
    }

    public void setPunishAccord(String punishAccord) {
        this.punishAccord = punishAccord;
    }

    @Basic
    @Column(name = "PUNISH_PROCEDURE")
    public String getPunishProcedure() {
        return punishProcedure;
    }

    public void setPunishProcedure(String punishProcedure) {
        this.punishProcedure = punishProcedure;
    }

    @Basic
    @Column(name = "IF_HEARING_WITNESSES")
    public String getIfHearingWitnesses() {
        return ifHearingWitnesses;
    }

    public void setIfHearingWitnesses(String ifHearingWitnesses) {
        this.ifHearingWitnesses = ifHearingWitnesses;
    }

    @Basic
    @Column(name = "FILING_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getFilingDate() {
        return filingDate;
    }

    public void setFilingDate(Date filingDate) {
        this.filingDate = filingDate;
    }

    @Basic
    @Column(name = "CASE_INVOLVING_PUNISHMENT")
    public String getCaseInvolvingPunishment() {
        return caseInvolvingPunishment;
    }

    public void setCaseInvolvingPunishment(String caseInvolvingPunishment) {
        this.caseInvolvingPunishment = caseInvolvingPunishment;
    }

    @Basic
    @Column(name = "MAJOR_CASE")
    public String getMajorCase() {
        return majorCase;
    }

    public void setMajorCase(String majorCase) {
        this.majorCase = majorCase;
    }

    @Basic
    @Column(name = "LEGAL_REVIEW")
    public String getLegalReview() {
        return legalReview;
    }

    public void setLegalReview(String legalReview) {
        this.legalReview = legalReview;
    }

    @Basic
    @Column(name = "LEGAL_REVIEW_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getLegalReviewDate() {
        return legalReviewDate;
    }

    public void setLegalReviewDate(Date legalReviewDate) {
        this.legalReviewDate = legalReviewDate;
    }

    @Basic
    @Column(name = "LEGAL_REVIEW_OPINIONS")
    public String getLegalReviewOpinions() {
        return legalReviewOpinions;
    }

    public void setLegalReviewOpinions(String legalReviewOpinions) {
        this.legalReviewOpinions = legalReviewOpinions;
    }

    @Basic
    @Column(name = "DISCUSS_COLLECTIVELY")
    public String getDiscussCollectively() {
        return discussCollectively;
    }

    public void setDiscussCollectively(String discussCollectively) {
        this.discussCollectively = discussCollectively;
    }

    @Basic
    @Column(name = "GROUP_DISCUSSION_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getGroupDiscussionDate() {
        return groupDiscussionDate;
    }

    public void setGroupDiscussionDate(Date groupDiscussionDate) {
        this.groupDiscussionDate = groupDiscussionDate;
    }

    @Basic
    @Column(name = "GROUP_DISCUSSION")
    public String getGroupDiscussion() {
        return groupDiscussion;
    }

    public void setGroupDiscussion(String groupDiscussion) {
        this.groupDiscussion = groupDiscussion;
    }

    @Basic
    @Column(name = "PUNISH_DOCUMENT_CODE")
    public String getPunishDocumentCode() {
        return punishDocumentCode;
    }

    public void setPunishDocumentCode(String punishDocumentCode) {
        this.punishDocumentCode = punishDocumentCode;
    }

    @Basic
    @Column(name = "SET_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSetDate() {
        return setDate;
    }

    public void setSetDate(Date setDate) {
        this.setDate = setDate;
    }

    @Basic
    @Column(name = "PUNISH_TYPE")
    public String getPunishType() {
        return punishType;
    }

    public void setPunishType(String punishType) {
        this.punishType = punishType;
    }

    @Basic
    @Column(name = "FINE")
    public Double getFine() {
        return fine;
    }

    public void setFine(Double fine) {
        this.fine = fine;
    }

    @Basic
    @Column(name = "PENALTY_RESULT")
    public String getPenaltyResult() {
        return penaltyResult;
    }

    public void setPenaltyResult(String penaltyResult) {
        this.penaltyResult = penaltyResult;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_RECONSIDER")
    public String getAdministrativeReconsider() {
        return administrativeReconsider;
    }

    public void setAdministrativeReconsider(String administrativeReconsider) {
        this.administrativeReconsider = administrativeReconsider;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_ACTION")
    public String getAdministrativeAction() {
        return administrativeAction;
    }

    public void setAdministrativeAction(String administrativeAction) {
        this.administrativeAction = administrativeAction;
    }

    @Basic
    @Column(name = "APPLY_ADMINISTRATIVE_RECONSIDER_GOVERNMENT")
    public String getApplyAdministrativeReconsiderGovernment() {
        return applyAdministrativeReconsiderGovernment;
    }

    public void setApplyAdministrativeReconsiderGovernment(String applyAdministrativeReconsiderGovernment) {
        this.applyAdministrativeReconsiderGovernment = applyAdministrativeReconsiderGovernment;
    }

    @Basic
    @Column(name = "APPLY_ADMINISTRATIVE_RECONSIDER_DEPT")
    public String getApplyAdministrativeReconsiderDept() {
        return applyAdministrativeReconsiderDept;
    }

    public void setApplyAdministrativeReconsiderDept(String applyAdministrativeReconsiderDept) {
        this.applyAdministrativeReconsiderDept = applyAdministrativeReconsiderDept;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_ACTION_COURT")
    public String getAdministrativeActionCourt() {
        return administrativeActionCourt;
    }

    public void setAdministrativeActionCourt(String administrativeActionCourt) {
        this.administrativeActionCourt = administrativeActionCourt;
    }

    @Basic
    @Column(name = "CASES_CLOSED_EXECUTION_WAY")
    public String getCasesClosedExecutionWay() {
        return casesClosedExecutionWay;
    }

    public void setCasesClosedExecutionWay(String casesClosedExecutionWay) {
        this.casesClosedExecutionWay = casesClosedExecutionWay;
    }

    @Basic
    @Column(name = "CASES_CLOSED_EXECUTION_RESULT")
    public String getCasesClosedExecutionResult() {
        return casesClosedExecutionResult;
    }

    public void setCasesClosedExecutionResult(String casesClosedExecutionResult) {
        this.casesClosedExecutionResult = casesClosedExecutionResult;
    }

    @Basic
    @Column(name = "CASES_CLOSED_FINE")
    public Double getCasesClosedFine() {
        return casesClosedFine;
    }

    public void setCasesClosedFine(Double casesClosedFine) {
        this.casesClosedFine = casesClosedFine;
    }

    @Basic
    @Column(name = "CASES_CLOSED_EXECUTION")
    public String getCasesClosedExecution() {
        return casesClosedExecution;
    }

    public void setCasesClosedExecution(String casesClosedExecution) {
        this.casesClosedExecution = casesClosedExecution;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_PENALTIES")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getAdministrativePenalties() {
        return administrativePenalties;
    }

    public void setAdministrativePenalties(Date administrativePenalties) {
        this.administrativePenalties = administrativePenalties;
    }

    @Basic
    @Column(name = "OTHER_DISPOSALS")
    public String getOtherDisposals() {
        return otherDisposals;
    }

    public void setOtherDisposals(String otherDisposals) {
        this.otherDisposals = otherDisposals;
    }

    @Basic
    @Column(name = "DEPORTATION_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getDeportationDate() {
        return deportationDate;
    }

    public void setDeportationDate(Date deportationDate) {
        this.deportationDate = deportationDate;
    }

    @Basic
    @Column(name = "SUBMITTED_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSubmittedDate() {
        return submittedDate;
    }

    public void setSubmittedDate(Date submittedDate) {
        this.submittedDate = submittedDate;
    }

    @Basic
    @Column(name = "SUBMITTED_PERSONNEL")
    public String getSubmittedPersonnel() {
        return submittedPersonnel;
    }

    public void setSubmittedPersonnel(String submittedPersonnel) {
        this.submittedPersonnel = submittedPersonnel;
    }

    @Basic
    @Column(name = "INSERT_TIME")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getInsertTime() {
        return insertTime;
    }

    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }

    @Basic
    @Column(name = "SOURCE")
    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    @Basic
    @Column(name = "BATCH_NUMBER")
    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    @Basic
    @Column(name = "SYNCHRONOUS_TYPE")
    public String getSynchronousType() {
        return synchronousType;
    }

    public void setSynchronousType(String synchronousType) {
        this.synchronousType = synchronousType;
    }

    @Basic
    @Column(name = "DATA_SOURCE")
    public String getDataSource() {
        return dataSource;
    }

    public void setDataSource(String dataSource) {
        this.dataSource = dataSource;
    }

    @Basic
    @Column(name = "CREATE_USER")
    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    @Basic
    @Column(name = "CREATE_TIME")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "DEL_FLAG")
    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Punish that = (Punish) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(recordUniqueIdentity, that.recordUniqueIdentity) &&
                Objects.equals(superviseItemCode, that.superviseItemCode) &&
                Objects.equals(punishActionName, that.punishActionName) &&
                Objects.equals(punishActionCode, that.punishActionCode) &&
                Objects.equals(implementInstitution, that.implementInstitution) &&
                Objects.equals(implementInstitutionCode, that.implementInstitutionCode) &&
                Objects.equals(entrustDept, that.entrustDept) &&
                Objects.equals(entrustDeptCode, that.entrustDeptCode) &&
                Objects.equals(superviseObject, that.superviseObject) &&
                Objects.equals(caseSource, that.caseSource) &&
                Objects.equals(checkActionCode, that.checkActionCode) &&
                Objects.equals(administrativeCp, that.administrativeCp) &&
                Objects.equals(administrativeCpNa, that.administrativeCpNa) &&
                Objects.equals(administrativeCpCeType, that.administrativeCpCeType) &&
                Objects.equals(administrativeCpUiCode, that.administrativeCpUiCode) &&
                Objects.equals(addressRegistered, that.addressRegistered) &&
                Objects.equals(addressOperating, that.addressOperating) &&
                Objects.equals(areaNumber, that.areaNumber) &&
                Objects.equals(illegalFact, that.illegalFact) &&
                Objects.equals(punishAccord, that.punishAccord) &&
                Objects.equals(punishProcedure, that.punishProcedure) &&
                Objects.equals(ifHearingWitnesses, that.ifHearingWitnesses) &&
                Objects.equals(filingDate, that.filingDate) &&
                Objects.equals(caseInvolvingPunishment, that.caseInvolvingPunishment) &&
                Objects.equals(majorCase, that.majorCase) &&
                Objects.equals(legalReview, that.legalReview) &&
                Objects.equals(legalReviewDate, that.legalReviewDate) &&
                Objects.equals(legalReviewOpinions, that.legalReviewOpinions) &&
                Objects.equals(discussCollectively, that.discussCollectively) &&
                Objects.equals(groupDiscussionDate, that.groupDiscussionDate) &&
                Objects.equals(groupDiscussion, that.groupDiscussion) &&
                Objects.equals(punishDocumentCode, that.punishDocumentCode) &&
                Objects.equals(setDate, that.setDate) &&
                Objects.equals(punishType, that.punishType) &&
                Objects.equals(fine, that.fine) &&
                Objects.equals(penaltyResult, that.penaltyResult) &&
                Objects.equals(administrativeReconsider, that.administrativeReconsider) &&
                Objects.equals(administrativeAction, that.administrativeAction) &&
                Objects.equals(applyAdministrativeReconsiderGovernment, that.applyAdministrativeReconsiderGovernment) &&
                Objects.equals(applyAdministrativeReconsiderDept, that.applyAdministrativeReconsiderDept) &&
                Objects.equals(administrativeActionCourt, that.administrativeActionCourt) &&
                Objects.equals(casesClosedExecutionWay, that.casesClosedExecutionWay) &&
                Objects.equals(casesClosedExecutionResult, that.casesClosedExecutionResult) &&
                Objects.equals(casesClosedFine, that.casesClosedFine) &&
                Objects.equals(casesClosedExecution, that.casesClosedExecution) &&
                Objects.equals(administrativePenalties, that.administrativePenalties) &&
                Objects.equals(otherDisposals, that.otherDisposals) &&
                Objects.equals(deportationDate, that.deportationDate) &&
                Objects.equals(submittedDate, that.submittedDate) &&
                Objects.equals(submittedPersonnel, that.submittedPersonnel) &&
                Objects.equals(insertTime, that.insertTime) &&
                Objects.equals(source, that.source) &&
                Objects.equals(batchNumber, that.batchNumber) &&
                Objects.equals(synchronousType, that.synchronousType) &&
                Objects.equals(dataSource, that.dataSource) &&
                Objects.equals(createUser, that.createUser) &&
                Objects.equals(createTime, that.createTime) &&
                Objects.equals(delFlag, that.delFlag);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, recordUniqueIdentity, superviseItemCode, punishActionName, punishActionCode, implementInstitution, implementInstitutionCode, entrustDept, entrustDeptCode, superviseObject, caseSource, checkActionCode, administrativeCp, administrativeCpNa, administrativeCpCeType, administrativeCpUiCode, addressRegistered, addressOperating, areaNumber, illegalFact, punishAccord, punishProcedure, ifHearingWitnesses, filingDate, caseInvolvingPunishment, majorCase, legalReview, legalReviewDate, legalReviewOpinions, discussCollectively, groupDiscussionDate, groupDiscussion, punishDocumentCode, setDate, punishType, fine, penaltyResult, administrativeReconsider, administrativeAction, applyAdministrativeReconsiderGovernment, applyAdministrativeReconsiderDept, administrativeActionCourt, casesClosedExecutionWay, casesClosedExecutionResult, casesClosedFine, casesClosedExecution, administrativePenalties, otherDisposals, deportationDate, submittedDate, submittedPersonnel, insertTime, source, batchNumber, synchronousType, dataSource, createUser, createTime, delFlag);
    }
}
